It is not uncommon for an original equipment manufacturer (“OEM”) to develop and manufacture different versions of the same computer system motherboard. These different versions of the same computer system motherboard are commonly referred to as “platforms.” For example, multiple versions of a server motherboard can be developed that have many hardware components, such as a chip set, in common. These different versions of the same motherboard can also have different hardware components. One version of a server motherboard might include, for instance, hardware support for redundant array of inexpensive disks (“RAID”). Another variation of the same motherboard might include additional hardware network adapters or other differentiating hardware components.
Different platforms commonly require firmware containing different executable code and static data in order to support their operation. For example, and without limitation, different platforms might require different firmware drivers or different static data, such as interrupt request (“IRQ”) routing tables, setup screens or defaults, and system management BIOS (“SMBIOS”) data. A single firmware that supports multiple platforms is utilized in some computing systems. Such firmware can, however, be complex, difficult to test and maintain, bloated, and inefficient. As a result, such firmware can be unreliable and negatively impact the performance of computing systems that utilize such firmware.
Also, it is not uncommon for a customer of the OEM of the motherboard (e.g., a distributor incorporating the motherboard into a consumer electronic product) to request different functional features for the same platform for different end-user groups. A distributor may offer a full-featured computing system for end-users paying at a high price point, a mid-featured computing system with less features than the full-featured computing system for end-users paying at a medium price point, and a low-featured computing system with less features than the mid-featured computing system for end-users paying a low price point. And, distributors may sell computing systems in different regions which may require the enablement and/or disablement of certain features due to regional restrictions or requirements. Providing different features to different end-user groups, however, may require the OEM to develop a firmware binary for each end-user group. Each firmware binary may have different source code requiring additional development, testing, and maintenance. The additional development, testing, and maintenance can increase costs, introduce more defects, and increase the complexity of the firmware.